package com.example.glgk.mapper.indicator;

import com.example.glgk.dto.indicator.*;
import com.example.glgk.dto.indicatorAnalysisDto.DepartmentDto;
import com.example.glgk.entity.DepartmentIndicatorEntity;
import com.example.glgk.entity.ElementDataEntity;
import com.example.glgk.entity.IndicatorDataEntity;
import com.example.glgk.entity.indicator.AnnexDataEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.math.BigDecimal;
import java.util.List;

/**
 * @author lxk
 */
@Mapper
public interface IndicatorCalculateMapper {

    List<CommonDto> systemGenerate();

    BigDecimal queryMonitorNumber();

    List<AnnexDataEntity> annexData(@Param("indicatorCalculateDto") IndicatorCalculateDto indicatorCalculateDto);

    List<IndicatorOverviewDto> getOverviewData(@Param("indicatorCalculateDto")IndicatorCalculateDto indicatorCalculateDto);

    List<IndicatorOverviewDto> getDataList(@Param("indicatorCalculateDto") IndicatorCalculateDto indicatorCalculateDto);

    List<IndicatorOverviewDto> getDataList2(@Param("indicatorCalculateDto")IndicatorCalculateDto indicatorCalculateDto);

    List<IndicatorDataEntity> getKeyIndicator(IndicatorCalculateDto indicatorCalculateDto);

    List<IndicatorDataEntity> getUnKeyIndicator(IndicatorCalculateDto indicatorCalculateDto);

    List<DepartmentIndicatorEntity> queryEscalationNew(IndicatorCalculateDto indicatorCalculateDto);

    List<DepartmentIndicatorEntity> queryEscalationGroupByDay(IndicatorCalculateDto indicatorCalculateDto);

    List<DepartmentIndicatorEntity> queryEscalationNewByYear(IndicatorCalculateDto indicatorCalculateDto);

    List<IndicatorDataEntity> getOtherKeyIndicator(IndicatorCalculateDto indicatorCalculateDto);

    List<IndicatorDataEntity> getOtherCommonIndicator(IndicatorCalculateDto indicatorCalculateDto);

    List<ElementDataEntity> getDeptElement();

    List<DepartmentIndicatorEntity> queryEscalationGroupByDept(IndicatorCalculateDto indicatorCalculateDto);

    List<DepartmentDto> getDepartments();

    List<IndicatorDataEntity> selectAll(IndicatorCalculateDto indicatorCalculateDto);

    List<DepartmentIndicatorEntity> queryEscalationGroupByYear(IndicatorCalculateDto indicatorCalculateDto);

    List<DepartmentIndicatorEntity> queryEscalationGroupBySingleDept(IndicatorCalculateDto indicatorCalculateDto);

    List<DepartmentIndicatorEntity> queryEscalationGroupByDrg(IndicatorCalculateDto indicatorCalculateDto);

    List<IndicatorDataEntity> selectKeyIndicator(IndicatorCalculateDto indicatorCalculateDto);

    List<IndicatorDataEntity> selectUnKeyIndicator(IndicatorCalculateDto indicatorCalculateDto);

    List<DepartmentIndicatorEntity> queryLastFiveYearsDrgData(IndicatorCalculateDto indicatorCalculateDto);

    List<DrgGroupDataDto> getDrgGroupDataList(IndicatorCalculateDto indicatorCalculateDto);

    List<PatientsInOutDto> getPatientsInOutHospitalList(IndicatorCalculateDto indicatorCalculateDto);
}
